package com.woniuxy.micromallserver.bean;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author unreleased
 * @date 2021/1/21 14:24
 * 订单实体类
 */
@Data
@Accessors(chain = true)
@JsonIgnoreProperties(value = "handler")
public class OrderBean implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 交易流水号
     * 例如支付宝提供的交易流水号 退款时使用
     */
    private String transactionSerialNumber;
    /**
     * 系统生成的订单号
     */
    private String orderNo;
    /**
     * 订单详情实体 查看订单具体商品
     */
    private List<OrderItemBean> orderItemBeans;
    /**
     * 订单原价
     */
    private BigDecimal originPrice;
    /**
     * 优惠信息
     */
    private String coupons;
    /**
     * 实际付款价格
     */
    private BigDecimal actualPrice;
    /**
     * 订单开始时间
     */
    private Date beginTime;
    /**
     * 订单发货时间
     */
    private Date deliveryTime;
    /**
     * 订单完成时间
     */
    private Date endTime;
    /**
     * 用户账号
     */
    private Long userId;
    /**
     * 支付类型
     * (1) 在线付款
     * (2) 货到付款
     */
    private Integer payType;
    /**
     * 订单来源
     * (1) 手机app
     * (2) pc端
     * (3)小程序
     */
    private Integer orderFrom;
    /**
     * 快递单号
     */
    private String deliveryId;
    /**
     * 寄件人
     */
    private String sender;
    /**
     * 收货人
     */
    private String receiver;
    /**
     * 寄件地址
     */
    private String sendAddress;
    /**
     * 收货地址
     */
    private String receiveAddress;
    /**
     * 寄件人手机号
     */
    private String sendTel;
    /**
     * 发件人手机号
     */
    private String receiveTel;
    /**
     * 订单状态
     * (0) 未支付 (1) 待发货 (2)已发货 (3) 已签收 (4)已完成 (5)已取消
     */
    private Integer status;
    /**
     * 删除标记
     * (0)已删除 （1）正常 默认值为1
     */
    private long delFlag;
    /**
     * 查询开始时间
     */
    private Date queryStartTime;
    /**
     * 查询结束时间
     */
    private Date queryEndTime;
}
